﻿namespace CookieTerm
{
    public class TerminalSettings
    {
        public string Name;
        public SerializableDictionary<Key, byte[]> KeyToSequenceMapping;
        public string TerminalType;

        public static TerminalSettings Default = new TerminalSettings
        {
            Name = "Default",
            TerminalType = "vt102",
            KeyToSequenceMapping = new SerializableDictionary<Key, byte[]>
            {
                {Key.Up, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.A}},
                {Key.Down, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.B}},
                {Key.Right, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.C}},
                {Key.Left, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.D}},

                {Key.Insert, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.D2, AsciiByte.Tilde}},
                {Key.Delete, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.D3, AsciiByte.Tilde}},
                {Key.Home, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.D1, AsciiByte.Tilde}},
                {Key.End, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.D4, AsciiByte.Tilde}},
                {Key.Prior, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.D5, AsciiByte.Tilde}},
                {Key.Next, new byte[] { AsciiByte.ESC, AsciiByte.LBR, AsciiByte.D6, AsciiByte.Tilde}},
                
                {Key.Tab, new byte[] { AsciiByte.TAB }}
            }
        };
    }
}